home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / c / gcc / gempp19.zoo / gem++19 / src / gemfl.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-21  |  1.2 KB  |  76 lines

  1. #include "vdi.h"
  2. #include "gemfl.h"
  3. #include <vdibind.h>
  4. #include <string.h>
  5.  
  6. static const int ARBSIZE=0x80;
  7.  
  8. GEMfontlist::GEMfontlist(VDI& v) :
  9.     vdi(v),
  10.     numfonts(vdi.NumberOfTextFaces()),
  11.     name(new char*[numfonts]),
  12.     code(new int[numfonts]),
  13.     arb(new bool[numfonts])
  14. {
  15.     for (int i=0; i<numfonts; i++) {
  16.         name[i]=new char[33];
  17.         code[i]=vdi.qt_name(i+1,name[i]);
  18.         arb[i]=name[i][32]!=0;
  19.     }
  20. }
  21.  
  22. GEMfontlist::~GEMfontlist()
  23. {
  24.     for (int i=0; i<numfonts; i++) {
  25.         delete name[i];
  26.     }
  27.     delete name;
  28.     delete code;
  29.     delete arb;
  30. }
  31.  
  32. int GEMfontlist::NumberOfFonts() const
  33. {
  34.     return numfonts;
  35. }
  36.  
  37. char* GEMfontlist::FontName(int index) const
  38. {
  39.     return name[index];
  40. }
  41.  
  42. int GEMfontlist::FontCode(int index) const
  43. {
  44.     return code[index];
  45. }
  46.  
  47. bool GEMfontlist::ArbitrarilySizable(int index) const
  48. {
  49.     return arb[index];
  50. }
  51.  
  52. int GEMfontlist::IndexOfFontCoded(int cde) const
  53. {
  54.     for (int i=0; i<numfonts; i++) {
  55.         if (code[i]==cde) {
  56.             return i;
  57.         }
  58.     }
  59.     return -1;
  60. }
  61.  
  62. int GEMfontlist::CodeOfFontNamed(char* fname) const
  63. {
  64.     for (int i=0; i<numfonts; i++) {
  65.         if (strcmp(fname,name[i])==0) {
  66.             return code[i];
  67.         }
  68.     }
  69.     return -1;
  70. }
  71.  
  72. GEMfont GEMfontlist::Font(int index) const
  73. {
  74.     return GEMfont(vdi,FontCode(index),12);
  75. }
  76.